%% 傅里叶变换
% Fourier_transform
function [F,A]=Fourier_transform(f,xmin,dx,xmax,wmin,dw,wmax)
% 函数说明：
% 输入量f为信号，xmin为自变量最小值，dx为自变量变化间隔，xmax为自变量最大值，
% wmin为频域最小值，dw为频域间隔，wmax为频域最大值，输出[F,A]为傅里叶变换后
% 函数与其对应的函数增益
% 注意：利用该函数求解，计算量为：length(wmin:dw:wmax)*length(xmin:dx:xmax)
% 则需要注意计算量不能过大，由于函数为数值求解方法，对于有确定周期函数有可能
% 计算不到周期对应的频率，因此该函数可定性用于对某非信号的频域分析
%% 函数初始化
% xmin=-10;% 自变量最小值
% xmax=10;% 自变量最大值
% dx=1e-3;% 自变量变化间隔
x=xmin:dx:xmax;
% w0=2*pi;
% f=sin(w0*x)+sin(3*w0*x)+sin(5*w0*x)+x.^2;% 原始信号
% wmin=0;% 频域最小值
% wmax=10*w0;% 频域最大值
% dw=0.1;% 频域变化范围
%% 建构函数
w=wmin:dw:wmax;
F=zeros(1,length(w));
k=0;
for i=w
    k=k+1;
    F(k)=sum(f.*exp(-1i*i.*x)*dx);
end
A=abs(F);
end